<?xml version="1.0"?>
<doc>
    <assembly>
        <name>XTemplate</name>
    </assembly>
    <members>
        <member name="T:XTemplate.Templating.TemplateException">
            <summary>
            模版异常
            </summary>
        </member>
        <member name="M:XTemplate.Templating.TemplateException.#ctor(System.String)">
            <summary>
            实例化一个模版处理异常
            </summary>
            <param name="message"></param>
        </member>
        <member name="M:XTemplate.Templating.TemplateException.#ctor(XTemplate.Templating.Block,System.String)">
            <summary>
            实例化一个模版处理异常
            </summary>
            <param name="block"></param>
            <param name="message"></param>
        </member>
        <member name="P:XTemplate.Templating.TemplateException.Block">
            <summary>代码块</summary>
        </member>
        <member name="P:XTemplate.Templating.TemplateException.Error">
            <summary>
            编译器错误
            </summary>
        </member>
        <member name="T:XTemplate.Templating.Directive">
            <summary>
            指令
            </summary>
        </member>
        <member name="M:XTemplate.Templating.Directive.#ctor(System.String,System.Collections.Generic.IDictionary{System.String,System.String},XTemplate.Templating.Block)">
            <summary>
            实例化一个指令对象
            </summary>
            <param name="name"></param>
            <param name="parameters"></param>
            <param name="block"></param>
        </member>
        <member name="M:XTemplate.Templating.Directive.GetParameter(System.String)">
            <summary>
            读取参数值
            </summary>
            <param name="name">参数名</param>
            <returns></returns>
        </member>
        <member name="M:XTemplate.Templating.Directive.TryGetParameter(System.String,System.String@)">
            <summary>
            尝试读取参数值
            </summary>
            <param name="name">参数名</param>
            <param name="value">参数值</param>
            <returns></returns>
        </member>
        <member name="P:XTemplate.Templating.Directive.Block">
            <summary>
            块
            </summary>
        </member>
        <member name="P:XTemplate.Templating.Directive.Name">
            <summary>
            指令名
            </summary>
        </member>
        <member name="P:XTemplate.Templating.Directive.Parameters">
            <summary>
            参数集合
            </summary>
        </member>
        <member name="T:XTemplate.Templating.TemplateItem">
            <summary>
            模版项。包含模版名和模版内容等基本信息，还包含运行时相关信息。
            </summary>
        </member>
        <member name="M:XTemplate.Templating.TemplateItem.ToString">
            <summary>
            已重载。
            </summary>
            <returns></returns>
        </member>
        <member name="P:XTemplate.Templating.TemplateItem.Name">
            <summary>模版名</summary>
        </member>
        <member name="P:XTemplate.Templating.TemplateItem.Content">
            <summary>模版内容</summary>
        </member>
        <member name="P:XTemplate.Templating.TemplateItem.Imports">
            <summary>引用命名空间</summary>
        </member>
        <member name="P:XTemplate.Templating.TemplateItem.Processed">
            <summary>是否已处理过</summary>
        </member>
        <member name="P:XTemplate.Templating.TemplateItem.ClassName">
            <summary>类名</summary>
        </member>
        <member name="P:XTemplate.Templating.TemplateItem.BaseClassName">
            <summary>基类名</summary>
        </member>
        <member name="P:XTemplate.Templating.TemplateItem.Blocks">
            <summary>模版块集合</summary>
        </member>
        <member name="P:XTemplate.Templating.TemplateItem.Source">
            <summary>源代码</summary>
        </member>
        <member name="P:XTemplate.Templating.TemplateItem.Included">
            <summary>是否被包含，被包含的模版不生成类</summary>
        </member>
        <member name="P:XTemplate.Templating.TemplateItem.Vars">
            <summary>模版变量集合</summary>
        </member>
        <member name="T:XTemplate.Templating.Template">
            <summary>
            模版引擎
            </summary>
            <remarks>
            模版引擎分为快速用法和增强用法两种，其中增强用法可用于对模版处理的全程进行干预。
            一个模版引擎实例，可用重复使用以处理多个模版。
            </remarks>
            <example>
            快速用法：
            <code>
            Dictionary&lt;String, Object&gt; data = new Dictionary&lt;String, Object&gt;();
            data["name"] = "参数测试";
            String content = Template.Process("模版文件.txt", data);
            </code>
            高级用法：
            <code>
            Template tt = new Template();
            tt.AddTemplateItem("模版1"， File.ReadAllText("模版文件1.txt"));
            tt.AddTemplateItem("模版2"， File.ReadAllText("模版文件2.txt"));
            tt.AddTemplateItem("模版3"， File.ReadAllText("模版文件3.txt"));
            tt.Process();
            tt.Compile();
            TemplateBase temp = tt.CreateInstance("模版1");
            temp.Data["name"] = "参数测试";
            return temp.Render();
            </code>
            </example>
        </member>
        <member name="M:XTemplate.Templating.Template.Create(System.String,System.String[])">
            <summary>
            根据名称和模版创建模版实例，带缓存，避免重复编译
            </summary>
            <param name="name">名称</param>
            <param name="templates">模版</param>
            <returns></returns>
        </member>
        <member name="M:XTemplate.Templating.Template.Create(System.Collections.Generic.IDictionary{System.String,System.String})">
            <summary>
            根据名称和模版创建模版实例，带缓存，避免重复编译
            </summary>
            <param name="templates">模版集合</param>
            <returns></returns>
        </member>
        <member name="M:XTemplate.Templating.Template.OnDispose(System.Boolean)">
            <summary>
            释放提供者
            </summary>
            <param name="disposing"></param>
        </member>
        <member name="M:XTemplate.Templating.Template.ProcessFile(System.String,System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>
            通过指定模版文件和传入模版的参数处理模版，返回结果
            </summary>
            <remarks>
            该方法是处理模版的快速方法，把分析、编译和运行三步集中在一起。
            带有缓存，避免重复分析模版。尽量以模版内容为key，防止模版内容改变后没有生效。
            </remarks>
            <example>
            快速用法：
            <code>
            Dictionary&lt;String, Object&gt; data = new Dictionary&lt;String, Object&gt;();
            data["name"] = "参数测试";
            String content = Template.ProcessFile("模版文件.txt", data);
            </code>
            </example>
            <param name="templateFile">模版文件</param>
            <param name="data">传入模版的参数，模版中可以使用Data[名称]获取</param>
            <returns></returns>
        </member>
        <member name="M:XTemplate.Templating.Template.ProcessTemplate(System.String,System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>
            通过指定模版内容和传入模版的参数处理模版，返回结果
            </summary>
            <example>
            快速用法：
            <code>
            Dictionary&lt;String, Object&gt; data = new Dictionary&lt;String, Object&gt;();
            data["name"] = "参数测试";
            String content = Template.ProcessTemplate("模版内容", data);
            </code>
            </example>
            <param name="template">模版内容</param>
            <param name="data">模版参数</param>
            <returns></returns>
        </member>
        <member name="M:XTemplate.Templating.Template.ProcessTemplate(System.String,System.String,System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>
            通过指定模版内容和传入模版的参数处理模版，返回结果
            </summary>
            <param name="name">模版名字</param>
            <param name="template">模版内容</param>
            <param name="data">模版参数</param>
            <returns></returns>
        </member>
        <member name="M:XTemplate.Templating.Template.Process">
            <summary>
            处理预先写入Templates的模版集合，模版生成类的代码在Sources中返回
            </summary>
        </member>
        <member name="M:XTemplate.Templating.Template.AddTemplateItem(System.String,System.String)">
            <summary>
            添加模版项，实际上是添加到Templates集合中。
            未指定模版名称时，使用模版的散列作为模版名称
            </summary>
            <param name="name"></param>
            <param name="content"></param>
        </member>
        <member name="M:XTemplate.Templating.Template.FindTemplateItem(System.String)">
            <summary>
            查找指定名称的模版
            </summary>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:XTemplate.Templating.Template.Process(XTemplate.Templating.TemplateItem)">
            <summary>
            处理指定模版
            </summary>
            <param name="item">模版项</param>
        </member>
        <member name="M:XTemplate.Templating.Template.ProcessDirectives(XTemplate.Templating.TemplateItem)">
            <summary>
            处理指令
            </summary>
            <param name="item"></param>
            <returns>返回指令集合</returns>
        </member>
        <member name="M:XTemplate.Templating.Template.ImportType(XTemplate.Templating.TemplateItem,System.Type)">
            <summary>
            导入某类型，导入程序集引用及命名空间引用，主要处理泛型
            </summary>
            <param name="item"></param>
            <param name="type"></param>
        </member>
        <member name="M:XTemplate.Templating.Template.CreateRenderMethod(System.Collections.Generic.List{XTemplate.Templating.Block},System.Boolean,System.CodeDom.CodeTypeDeclaration)">
            <summary>
            生成Render方法
            </summary>
            <param name="blocks"></param>
            <param name="lineNumbers"></param>
            <param name="typeDec"></param>
        </member>
        <member name="M:XTemplate.Templating.Template.GenerateMemberForBlock(XTemplate.Templating.Block,System.CodeDom.CodeTypeDeclaration,System.Boolean,System.CodeDom.Compiler.CodeDomProvider,System.CodeDom.Compiler.CodeGeneratorOptions,System.Boolean)">
            <summary>
            生成成员代码块
            </summary>
            <param name="block"></param>
            <param name="generatorType"></param>
            <param name="lineNumbers"></param>
            <param name="provider"></param>
            <param name="options"></param>
            <param name="firstMemberFound"></param>
            <returns></returns>
        </member>
        <member name="M:XTemplate.Templating.Template.Compile">
            <summary>
            编译运行
            </summary>
            <returns></returns>
        </member>
        <member name="M:XTemplate.Templating.Template.FindBlockCode(System.String,System.Int32)">
            <summary>
            找到指定文件指定位置上下三行的代码
            </summary>
            <param name="name"></param>
            <param name="lineNumber"></param>
            <returns></returns>
        </member>
        <member name="M:XTemplate.Templating.Template.CreateInstance(System.String)">
            <summary>
            创建模版实例
            </summary>
            <param name="className"></param>
            <returns></returns>
        </member>
        <member name="M:XTemplate.Templating.Template.Render(System.String,System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>
            运行代码
            </summary>
            <param name="className"></param>
            <param name="data"></param>
            <returns></returns>
        </member>
        <member name="M:XTemplate.Templating.Template.Hash(System.String)">
            <summary>
            MD5散列
            </summary>
            <param name="str"></param>
            <returns></returns>
        </member>
        <member name="M:XTemplate.Templating.Template.GetClassName(System.String)">
            <summary>
            把名称处理为标准类名
            </summary>
            <param name="fileName"></param>
            <returns></returns>
        </member>
        <member name="M:XTemplate.Templating.Template.WriteLog(System.String)">
            <summary>
            输出日志
            </summary>
            <param name="msg"></param>
        </member>
        <member name="M:XTemplate.Templating.Template.WriteLog(System.String,System.Object[])">
            <summary>
            输出日志
            </summary>
            <param name="format"></param>
            <param name="args"></param>
        </member>
        <member name="P:XTemplate.Templating.Template.Errors">
            <summary>编译错误集合</summary>
        </member>
        <member name="P:XTemplate.Templating.Template.Templates">
            <summary>模版集合</summary>
        </member>
        <member name="P:XTemplate.Templating.Template.AssemblyReferences">
            <summary>程序集引用</summary>
        </member>
        <member name="P:XTemplate.Templating.Template.AssemblyName">
            <summary>程序集名称。一旦指定，编译时将会生成持久化的模版程序集文件。</summary>
        </member>
        <member name="P:XTemplate.Templating.Template.Assembly">
            <summary>程序集</summary>
        </member>
        <member name="P:XTemplate.Templating.Template.Provider">
            <summary>代码生成提供者</summary>
        </member>
        <member name="P:XTemplate.Templating.Template.NameSpace">
            <summary>命名空间</summary>
        </member>
        <member name="P:XTemplate.Templating.Template.Step">
            <summary>处理步骤</summary>
        </member>
        <member name="P:XTemplate.Templating.Template.Debug">
            <summary>
            是否调试
            </summary>
        </member>
        <member name="P:XTemplate.Templating.Template.BaseClassName">
            <summary>
            默认基类名称
            </summary>
        </member>
        <member name="P:XTemplate.Templating.Template.References">
            <summary>
            标准程序集引用
            </summary>
        </member>
        <member name="P:XTemplate.Templating.Template.Imports">
            <summary>
            标准命名空间引用
            </summary>
        </member>
        <member name="T:XTemplate.Templating.TemplateBase">
            <summary>
            模版基类，所有模版继承自该类
            </summary>
        </member>
        <member name="M:XTemplate.Templating.TemplateBase.#ctor">
            <summary>
            实例化一个模版
            </summary>
        </member>
        <member name="M:XTemplate.Templating.TemplateBase.Dispose">
            <summary>
            释放
            </summary>
        </member>
        <member name="M:XTemplate.Templating.TemplateBase.Dispose(System.Boolean)">
            <summary>
            释放
            </summary>
            <param name="disposing"></param>
        </member>
        <member name="M:XTemplate.Templating.TemplateBase.Finalize">
            <summary>
            析构
            </summary>
        </member>
        <member name="M:XTemplate.Templating.TemplateBase.ClearIndent">
            <summary>
            清除缩进
            </summary>
        </member>
        <member name="M:XTemplate.Templating.TemplateBase.RemoveIndent">
            <summary>
            弹出缩进
            </summary>
            <returns></returns>
        </member>
        <member name="M:XTemplate.Templating.TemplateBase.AddIndent(System.String)">
            <summary>
            压入缩进
            </summary>
            <param name="indent"></param>
        </member>
        <member name="M:XTemplate.Templating.TemplateBase.Write(System.String)">
            <summary>
            写入文本
            </summary>
            <param name="str"></param>
        </member>
        <member name="M:XTemplate.Templating.TemplateBase.Write(System.Object)">
            <summary>
            写入文本
            </summary>
            <param name="obj"></param>
        </member>
        <member name="M:XTemplate.Templating.TemplateBase.Write(System.String,System.Object[])">
            <summary>
            写入文本
            </summary>
            <param name="format"></param>
            <param name="args"></param>
        </member>
        <member name="M:XTemplate.Templating.TemplateBase.WriteLine(System.String)">
            <summary>
            写入文本
            </summary>
            <param name="str"></param>
        </member>
        <member name="M:XTemplate.Templating.TemplateBase.WriteLine(System.Object)">
            <summary>
            写入文本
            </summary>
            <param name="obj"></param>
        </member>
        <member name="M:XTemplate.Templating.TemplateBase.WriteLine(System.String,System.Object[])">
            <summary>
            写入行
            </summary>
            <param name="format"></param>
            <param name="args"></param>
        </member>
        <member name="M:XTemplate.Templating.TemplateBase.WriteLine">
            <summary>
            写入一个换行
            </summary>
        </member>
        <member name="M:XTemplate.Templating.TemplateBase.Initialize">
            <summary>
            初始化
            </summary>
        </member>
        <member name="M:XTemplate.Templating.TemplateBase.Render">
            <summary>
            转换文本
            </summary>
            <returns></returns>
        </member>
        <member name="M:XTemplate.Templating.TemplateBase.GetData(System.String)">
            <summary>
            获取数据，主要处理数据字典中不存在的元素
            </summary>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:XTemplate.Templating.TemplateBase.GetData``1(System.String)">
            <summary>
            获取数据，主要处理类型转换
            </summary>
            <typeparam name="T"></typeparam>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="P:XTemplate.Templating.TemplateBase.CurrentIndent">
            <summary>
            当前缩进
            </summary>
        </member>
        <member name="P:XTemplate.Templating.TemplateBase.indentLengths">
            <summary>
            缩进长度集合
            </summary>
        </member>
        <member name="P:XTemplate.Templating.TemplateBase.Output">
            <summary>
            输出
            </summary>
        </member>
        <member name="P:XTemplate.Templating.TemplateBase.Data">
            <summary>
            数据
            </summary>
        </member>
        <member name="P:XTemplate.Templating.TemplateBase.Vars">
            <summary>模版变量集合</summary>
        </member>
        <member name="T:XTemplate.Templating.TemplateParser">
            <summary>
            模版分析器
            </summary>
        </member>
        <member name="M:XTemplate.Templating.TemplateParser.Parse(System.String,System.String)">
            <summary>
            把模版分割成块
            </summary>
            <param name="name"></param>
            <param name="content"></param>
            <returns></returns>
        </member>
        <member name="M:XTemplate.Templating.TemplateParser.InsertPosition(System.Collections.Generic.List{XTemplate.Templating.Block})">
            <summary>
            插入位置信息
            </summary>
            <param name="blocks"></param>
        </member>
        <member name="M:XTemplate.Templating.TemplateParser.StripEscapeCharacters(System.Collections.Generic.List{XTemplate.Templating.Block})">
            <summary>
            对编码的字符进行解码
            </summary>
            <param name="blocks"></param>
        </member>
        <member name="M:XTemplate.Templating.TemplateParser.ParseDirectiveBlock(XTemplate.Templating.Block)">
            <summary>
            分析指令块
            </summary>
            <param name="block"></param>
            <returns></returns>
        </member>
        <member name="M:XTemplate.Templating.TemplateParser.ValidateDirectiveString(XTemplate.Templating.Block)">
            <summary>
            验证指令字符串格式是否正确
            </summary>
            <param name="block"></param>
            <returns></returns>
        </member>
        <member name="M:XTemplate.Templating.TemplateParser.StripExtraNewlines(System.Collections.Generic.List{XTemplate.Templating.Block})">
            <summary>
            删除多余的换行
            </summary>
            <remarks>
            本方法的目的是为了让模版的编写更加随意灵活，有以下功能：
            1，文本后面如果是语句代码段或者类成员代码段，允许忽略代码段前的一个换行和空白符 (?=(\r\n)|\n)[ \t]*$
            2，文本前面如果是语句代码段或者类成员代码段，允许忽略代码段后面的空白以及一个换行符 ^[ \t]*((\r\n)|\n)
            3，语句代码段和类成员代码段，允许忽略之间的空白和换行 ^\s*$
            </remarks>
            <param name="blocks"></param>
        </member>
        <member name="T:XTemplate.Templating.Block">
            <summary>
            代码块
            </summary>
        </member>
        <member name="M:XTemplate.Templating.Block.#ctor">
            <summary>
            实例化一个代码块对象
            </summary>
        </member>
        <member name="M:XTemplate.Templating.Block.#ctor(XTemplate.Templating.BlockType,System.String)">
            <summary>
            实例化一个代码块对象
            </summary>
            <param name="type"></param>
            <param name="text"></param>
        </member>
        <member name="M:XTemplate.Templating.Block.ToString">
            <summary>
            已重载。
            </summary>
            <returns></returns>
        </member>
        <member name="M:XTemplate.Templating.Block.ToFullString">
            <summary>
            转为完成字符串
            </summary>
            <returns></returns>
        </member>
        <member name="P:XTemplate.Templating.Block.StartColumn">
            <summary>
            开始列数
            </summary>
        </member>
        <member name="P:XTemplate.Templating.Block.StartLine">
            <summary>
            开始行数
            </summary>
        </member>
        <member name="P:XTemplate.Templating.Block.EndColumn">
            <summary>
            结束列数
            </summary>
        </member>
        <member name="P:XTemplate.Templating.Block.EndLine">
            <summary>
            结束行数
            </summary>
        </member>
        <member name="P:XTemplate.Templating.Block.Name">
            <summary>
            文件名
            </summary>
        </member>
        <member name="P:XTemplate.Templating.Block.Text">
            <summary>
            文本
            </summary>
        </member>
        <member name="P:XTemplate.Templating.Block.Type">
            <summary>
            块类型
            </summary>
        </member>
        <member name="T:XTemplate.Templating.BlockType">
            <summary>
            代码块类型
            </summary>
        </member>
        <member name="F:XTemplate.Templating.BlockType.Directive">
            <summary>
            指令
            </summary>
        </member>
        <member name="F:XTemplate.Templating.BlockType.Member">
            <summary>
            成员
            </summary>
        </member>
        <member name="F:XTemplate.Templating.BlockType.Text">
            <summary>
            模版文本
            </summary>
        </member>
        <member name="F:XTemplate.Templating.BlockType.Statement">
            <summary>
            语句
            </summary>
        </member>
        <member name="F:XTemplate.Templating.BlockType.Expression">
            <summary>
            表达式
            </summary>
        </member>
    </members>
</doc>
